﻿namespace WH.Contracts.Systems.Menus
{
    /// <summary>
    /// 菜单
    /// </summary>
    public class MenuOutputDto
    {
        /// <summary>
        /// 主键fid
        /// </summary>
        public string Id { get; set; } = null!;


        /// <summary>
        /// 组件路径
        /// </summary>
        public string? Component { get; set; }

        /// <summary>
        /// 组件名称
        /// </summary>
        public string? ComponentName { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// 是否隐藏
        /// </summary>
        public bool Hidden { get; set; }

        /// <summary>
        /// 图标地址 此处以layui举例：layui-icon-set
        /// </summary>           
        public string? Icon { get; set; }

        /// <summary>
        /// 是否为叶子节点
        /// </summary>
        public bool IsLeaf { get; set; }


        /// <summary>
        /// 是否有叶子节点
        /// </summary>
        public bool Leaf { get; set; }

        /// <summary>
        /// 是否缓存
        /// </summary>
        public bool KeepAlive { get; set; }

        /// <summary>
        /// 菜单类型
        /// </summary>
        public int? MenuType { get; set; }

        /// <summary>
        /// 名称 例如：系统设置
        /// </summary>           
        public string Name { get; set; } = null!;

        /// <summary>
        /// 父节点id 默认为0位顶节点
        /// </summary>      
        public string? ParentId { get; set; }


        /// <summary>
        /// 
        /// </summary>      
        public string? Perms { get; set; }

        /// <summary>
        /// 
        /// </summary>      
        public string? PermsType { get; set; }

        /// <summary>
        /// 跳转地址
        /// </summary>      
        public string? Redirect { get; set; }

        /// <summary>
        /// 路由组件
        /// </summary>      
        public bool Route { get; set; }

        /// <summary>
        /// 排序
        /// </summary>      
        public int SortNo { get; set; }

        /// <summary>
        /// 状态
        /// </summary>      
        public bool Status { get; set; }

        /// <summary>
        /// 标题
        /// </summary>      
        public string Title { get; set; }

        /// <summary>
        /// 访问路劲
        /// </summary>      
        public string Url { get; set; }

        /// <summary>
        /// 打开方式
        /// </summary>      
        public bool? InternalOrExternal { get; set; }

        public IList<MenuOutputDto> Children { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string? CreatedBy { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreatedTime { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        public string? UpdatedBy { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdatedTime { get; set; }


        public string OrganizationId { get; set; }

        public string OrganizationName { get; set; }
    }
}
